package com.chukun.spi.service;

import com.chukun.spi.service.service.PayService;

import java.util.Iterator;
import java.util.ServiceLoader;

/**
 * @author chukun
 * @version 1.0.0
 * @description jdk spi运行
 * @createTime 2021年12月26日 18:59:00
 *
 * JDK 的 SPI 规范规定：
 * 接口名：可随意定义
 * 实现类名：可随意定义
 * 提供者配置文件路径： 其查找的目录为 META-INF/services
 * 提供者配置文件名称：接口的全限定性类名，没有扩展名。
 * 提供者配置文件内容：该接口的所有实现类的全限类性类名写入到该文件中，一个类名占一行
 */
public class SpiMainRunner {

    public static void main(String[] args) {
        ServiceLoader<PayService> load = ServiceLoader.load(PayService.class);
        Iterator<PayService> it = load.iterator();
        while (it.hasNext()) {
            System.out.println("*********************************************");
            System.out.println();
            PayService payService = it.next();
            payService.way();
            payService.pay();
            System.out.println();
            System.out.println("*********************************************");
        }
    }
}
